cmake_minimum_required(VERSION 3.28)
project(cpp)

set(CMAKE_CXX_STANDARD 26)

# 找到所有的 .cpp 文件
file(GLOB_RECURSE CppFiles "*.cpp")

foreach (cppFile ${CppFiles})
    # 获取文件路径和文件名
    get_filename_component(filePath ${cppFile} PATH)
    get_filename_component(exeFile ${cppFile} NAME_WE)

    # 获取父目录名
    get_filename_component(ParentDirName ${filePath} NAME)
    # 设置输出文件名为 "所在文件夹名_文件名"
    set(OutputExe "${ParentDirName}_${exeFile}")

    # 创建可执行文件
    add_executable(${OutputExe} ${cppFile})

endforeach ()